Skip to content

Update django-anymail to 12.0#1190

Open
pyup-bot wants to merge 1 commit intomainfrom
pyup-update-django-anymail-10.0-to-12.0
Open

Update django-anymail to 12.0#1190
pyup-bot wants to merge 1 commit intomainfrom
pyup-update-django-anymail-10.0-to-12.0

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Sep 9, 2024

This PR updates django-anymail[postmark] from 10.0 to 12.0.

Changelog

12.0

-----

*2024-09-09*

Breaking changes
~~~~~~~~~~~~~~~~

* Require **Django 4.0 or later** and Python 3.8 or later.

Features
~~~~~~~~

* **Resend:** Add support for ``send_at``.

Fixes
~~~~~

* **Unisender Go:** Fix several problems in Anymail's Unisender Go status tracking
webhook. Rework signature checking to fix false validation errors (particularly
on "clicked" and "opened" events). Properly handle "use single event" webhook
option. Correctly verify WEBHOOK_SECRET when set. Provide Unisender Go's
``delivery_status`` code and unsubscribe form ``comment`` in Anymail's
``event.description``. Treat soft bounces as "deferred" rather than "bounced".
(Thanks to `MikeVL`_ for fixing the signature validation problem.)

Other
~~~~~

* **Mandrill (docs):** Explain how ``cc`` and ``bcc`` handling depends on
Mandrill's "preserve recipients" option. (Thanks to `dgilmanAIDENTIFIED`_
for reporting the issue.)

* **Postal (docs):** Update links to Postal's new documentation site.
(Thanks to `jmduke`_.)

11.1

-----

*2024-08-07*

Features
~~~~~~~~

* **Brevo:** Support Brevo's new "Complaint," "Error" and "Loaded by proxy"
tracking events. (Thanks to `originell`_ for the update.)

Deprecations
~~~~~~~~~~~~

* This will be the last Anymail release to support Django 3.0, 3.1 and 3.2
(which reached end of extended support on 2021-04-06, 2021-12-07 and
2024-04-01, respectively).

* This will be the last Anymail release to support Python 3.7 (which reached
end-of-life on 2023-06-27, and is not supported by Django 4.0 or later).

11.0.1

-------

*2024-07-11*

(This release updates only documentation and package metadata; the code is
identical to v11.0.)

Fixes
~~~~~

* **Amazon SES (docs):** Correct IAM policies required for using
the Amazon SES v2 API. See
`Migrating to the SES v2 API <https://anymail.dev/en/stable/esps/amazon_ses/#amazon-ses-v2>`__.
(Thanks to `scur-iolus`_ for identifying the problem.)

11.0

-----

*2024-06-23*

Breaking changes
~~~~~~~~~~~~~~~~

* **Amazon SES:** Drop support for the Amazon SES v1 API.
If your ``EMAIL_BACKEND`` setting uses ``amazon_sesv1``,
or if you are upgrading from Anymail 9.x or earlier directly to 11.0 or later, see
`Migrating to the SES v2 API <https://anymail.dev/en/stable/esps/amazon_ses/#amazon-ses-v2>`__.
(Anymail 10.0 switched to the SES v2 API by default. If your ``EMAIL_BACKEND``
setting has ``amazon_sesv2``, change that to just ``amazon_ses``.)

* **SparkPost:** When sending with a ``template_id``, Anymail now raises an
error if the message uses features that SparkPost will silently ignore. See
`docs <https://anymail.dev/en/stable/esps/sparkpost/#sparkpost-template-limitations>`__.

Features
~~~~~~~~

* Add new ``merge_headers`` option for per-recipient headers with batch sends.
This can be helpful to send individual *List-Unsubscribe* headers (for example).
Supported for all current ESPs *except* MailerSend, Mandrill and Postal. See
`docs <https://anymail.dev/en/stable/sending/anymail_additions/#anymail.message.AnymailMessage.merge_headers>`__.
(Thanks to `carrerasrodrigo`_ for the idea, and for the base and
Amazon SES implementations.)

* **Amazon SES:** Allow extra headers, ``metadata``, ``merge_metadata``,
and ``tags`` when sending with a ``template_id``.
(Requires boto3 v1.34.98 or later.)

* **MailerSend:** Allow all extra headers. (Note that MailerSend limits use
of this feature to "Enterprise accounts only.")

Fixes
~~~~~

* **Amazon SES:** Fix a bug that could result in sending a broken address header
if it had a long display name containing both non-ASCII characters and commas.
(Thanks to `andresmrm`_ for isolating and reporting the issue.)

* **SendGrid:** In the tracking webhook, correctly report "bounced address"
(recipients dropped due to earlier bounces) as reject reason ``"bounced"``.
(Thanks to `vitaliyf`_.)

10.3

-----

*2024-03-12*

Features
~~~~~~~~

* **Brevo:** Add support for batch sending
(`docs <https://anymail.dev/en/stable/esps/brevo/#batch-sending-merge-and-esp-templates>`__).

* **Resend:** Add support for batch sending
(`docs <https://anymail.dev/en/stable/esps/resend/#batch-sending-merge-and-esp-templates>`__).

* **Unisender Go:** Newly supported ESP
(`docs <https://anymail.dev/en/stable/esps/unisender_go/>`__).
(Thanks to `Arondit`_ for the implementation.)


Fixes
~~~~~

* **Mailgun:** Avoid an error when Mailgun posts null delivery-status
to the event tracking webhook. (Thanks to `izimobil`_ for the fix.)


Deprecations
~~~~~~~~~~~~

* **Brevo (SendinBlue):** Rename "SendinBlue" to "Brevo" throughout
Anymail's code, reflecting their rebranding.
This affects the email backend path, settings names, and webhook URLs.
The old names will continue to work for now, but are deprecated. See
`Updating code from SendinBlue to Brevo <https://anymail.dev/en/stable/esps/brevo/#brevo-rename>`__
for details.

10.2

-----

*2023-10-25*

Features
~~~~~~~~

* **Resend**: Add support for this ESP
(`docs <https://anymail.dev/en/stable/esps/resend/>`__).

Fixes
~~~~~

* Correctly merge global ``SEND_DEFAULTS`` with message ``esp_extra``
for ESP APIs that use a nested structure (including Mandrill and SparkPost).
Clarify intent of global defaults merging code for other message properties.
(Thanks to `mounirmesselmeni`_ for reporting the issue.)

Other
~~~~~

* **Mailgun (docs):** Clarify account-level "Mailgun API keys" vs.
domain-level "sending API keys." (Thanks to `sdarwin`_ for
reporting the issue.)
* Test against prerelease versions of Django 5.0 and Python 3.12.

10.1

-----

*2023-07-31*

Features
~~~~~~~~

* **Inbound:** Improve `AnymailInboundMessage`'s handling of inline content:

* Rename `inline_attachments` to `content_id_map`, more accurately reflecting its function.
* Add new `inlines` property that provides a complete list of inline content,
 whether or not it includes a *Content-ID*. This is helpful for accessing
 inline images that appear directly in a *multipart/mixed* body, such as those
 created by the Apple Mail app.
* Rename `is_inline_attachment()` to just `is_inline()`.

The renamed items are still available, but deprecated, under their old names.
See `docs <http://anymail.dev/en/stable/inbound/#anymail.inbound.AnymailInboundMessage>`__.
(Thanks to `martinezleoml`_.)

* **Inbound:** `AnymailInboundMessage` now derives from Python's
`email.message.EmailMessage`, which provides improved compatibility with
email standards. (Thanks to `martinezleoml`_.)

* **Brevo (Sendinblue):** Sendinblue has rebranded to "Brevo." Change default
API endpoint to ``api.brevo.com``, and update docs to reflect new name. Anymail
still uses ``sendinblue`` in the backend name, for settings, etc., so there
should be no impact on your code. (Thanks to `sblondon`_.)

* **Brevo (Sendinblue):** Add support for inbound email. (See
`docs <https://anymail.dev/en/stable/esps/sendinblue/#sendinblue-inbound>`__.)

* **SendGrid:** Support multiple ``reply_to`` addresses.
(Thanks to `gdvalderrama`_ for pointing out the new API.)

Deprecations
~~~~~~~~~~~~

* **Inbound:** `AnymailInboundMessage.inline_attachments` and `.is_inline_attachment()`
have been renamed---see above.
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant